﻿$(function() {
/*
	//文件放在服务器端 可直接访问;
{
	"data-id": "1",//唯一ID
	"title": "DEF",//显示在小图下方的TITLE 默认 //{var}
	"year": "2008",//年份
	"place": "北京",//项目地址
	"assort": "城市规划",//项目分类
	"plan": "概念",//项目进度
	"src": "",//小图地址 请使用相对地址 默认 // "images/indexPic/dataid_{var}.jpg";
	"bSrc": "",//大图地址 请使用相对地址 默认 // "images/indexPic/bigDataid_{var}.jpg";
	"href": "",//点击的链接 //默认 picshow.html?dataid={var};
	"width": "",//弹出窗口的宽 //整型 //默认800;
	"height": ""//弹出的窗口的高 //整型 //默认600;
}
*/
	$(".indexScroll:eq(0)").indexScroll();
	
});

var timeScroll;
(function($) {
	var S;//设置命名空间
	$.fn.indexScroll = function(){
		S.init();
		
	};
	S = {
		init:function(){
			S.gridWidth = 65;//格子宽
			S.gridHeight = 65;//格子高
			S.gridSpace = 10;//格子间隔PX
			S.scrollSpeed = 3000;//滚动时常
			S.scrollSpace = 0;//滚动间隔
			S.boxDom = $(".indexScroll:eq(0)");
			S.addDomEvent();//给滚动的元素添加事件；
			
		},
		wantShowHow:function(obj,num){//想要显示的个数 (dd对象,数量)
			var width = num*S.gridWidth + (num-1)*S.gridSpace;
			obj.width(width);
		},
		addDomEvent:function(){//给DOM 添加事件
			S.boxDom.find("dd").each(function(){//给滚动元素添加事件；
				var obj = $(this);
				obj.find("a").each(function(){//绑定小图鼠标经过事件
					var objChild = $(this);
					S.setSmallBgImg(objChild);//设置图片的背景图像
					objChild.live("mouseenter",S.overShowBigPic);
					objChild.live("mouseleave",S.leaveShowSmallPic);
				})
				if(S.testDomScroll(obj)){//查找需要滚动的对象
					S.doDdScroll(obj)
					obj.live("mouseenter",S.bindStopScroll);
					obj.live("mouseleave",S.bindContScroll);
				}	
			})
		},
		testDomScroll:function(obj){//判断是否要滚动(dd对象)
			if(obj.attr("len") > obj.attr("num")){
				return true;
			}
			return false;
		},
		doDdScroll:function(obj){//格子滚动
			var ulPar = obj.children("ul");
			var first = ulPar.find("li:first-child");
			if(parseFloat(first.css("marginLeft")) == 0){//判断第一个是否在滚动
				first = ulPar.find("li:last-child");
				first.css({
					marginLeft:-S.gridWidth-S.gridSpace	
				});
				first.prependTo(ulPar);
			}
			S.scrollDom(first,obj);//确定滚动对象;
		},
		scrollDom:function(obj,par){
			var speed = ((Math.abs(parseInt(obj.css("marginLeft"))))/(S.gridWidth+S.gridSpace))*S.scrollSpeed;
			obj.delay(S.scrollSpace).animate({
				marginLeft:0	
			},speed,function(){
				S.doDdScroll(par);
				return false;
			})
		},
		bindStopScroll:function(){//鼠标经过取消滚动效果
			var obj = $(this);
			obj.find("li:animated").stop();
		},
		bindContScroll:function(){//鼠标移出 继续滚动
			var obj = $(this);
			S.doDdScroll(obj);
		},
		overShowBigPic:function(){//鼠标经过小图触发事件
			var obj = $(this);
			obj.parent().css("z-index","600");
			obj.css("z-index","600");
			obj.find("img").stop().animate({opacity:0});//图片动画
			obj.stop().animate({
				left:-12,
				top:-12,
				width:90,//鼠标经过后的放大的大小
				height:90
			},300,"swing")
		},
		leaveShowSmallPic:function(){//鼠标经过小图触发事件
			var obj = $(this);
			obj.parent().css("z-index","100");
			obj.css("z-index","100");
			obj.find("img").stop().animate({opacity:1});//图片动画
			obj.stop().animate({
				left:0,
				top:0,
				width:65,//鼠标还原后的大小
				height:65
			},300,"swing")
		},
		setSmallBgImg:function(obj){
			var src = obj.find("img").attr("src");
			src = src.replace(/\.jpg/,"_big.jpg");
			src = "url(" + src + ")";
			obj.css("backgroundImage",src);
		}
	}	
	
})(jQuery);




//IEsetTimeout转成标准setTimeout
(function(){
	var st = window.setTimeout;
	window.setTimeout = function(fn, mDelay) {
		var t=new Date().getTime();
		if(typeof fn == 'function'){
			var args = Array.prototype.slice.call(arguments,2);
			var f = function(){
				args.push(new Date().getTime()-t-mDelay);  //该行用于实现对实际延迟和设定延迟的差值，同FF的最后一个参数，无实际意义
				fn.apply(null, args)
			};
			return st(f, mDelay);
		}
		return st(fn,mDelay);
	}
})();















